import express from 'express';
import fs from 'fs';
import path from 'path';
import { config } from '../config';

const routesDir = path.join(config.PROJECT_DIR, './src/router');

// 动态导入 ES 模块目前还不能直接在 Node.js 中同步完成，
// 因此我们需要使用异步的方式来导入和处理路由。
const setupRoutes = async (app: express.Application) => {
  const files = fs.readdirSync(routesDir); // 例如：[question.ts]
  for (const file of files) {
    if (file.endsWith('.ts') && file !== 'index.ts') {
      // 去除文件扩展名，得到路由的路径
      const routePath = path.basename(file, '.ts'); // 去除.ts后缀的文件名
      try {
        // 使用动态 import() 函数来异步加载 ES 模块
        const routerModule = await import(`./${file}`);
        const router = routerModule.default; // 假设默认导出的是 express.Router 实例
        app.use(`/${routePath}`, router);
      } catch (error) {
        console.error(`加载路由出错: ${file}`, error);
      }
    }
  }
};

export default setupRoutes;
